The present invention relates generally to telecommunications and more specifically to a system and method for adapting data rates between telecommunication devices.
The amount of data communicated through networks, such as the Internet, is increasing dramatically. To meet the increased demand for network bandwidth, data networks that transfer data at faster and faster rates have been developed. As new networks are developed, different formats for the data are also developed where the networks transfer data in the formats at different data rates. Because the formats and data rates vary between networks, not all networks transfer data at the same speed. Additionally, telecommunications systems connected to the network process data at different rates than that of the networks. Telecommunication systems, such as aggregators, may aggregate data from different networks that transfer data at varying data rates. Also, a processor in the aggregator typically processes data at a set rate. Thus, a telecommunications system's processor and the networks process or transfer data at different rates.
Problems are encountered in transferring data between the aggregator's processor and a network because of the difference in data rates. For example, data cannot be continuously streamed between a first system processing data at a lower rate and a second system processing data at a higher rate without any underflow of data at the second system. Because the first system sends data at a rate slower than the second system, the second system experiences lapses in time where data is not available for processing.
One method for avoiding the above problem is to store an entire data packet in a buffer. Once the entire data packet is stored in the buffer, the data packet is sent to the second system at the second system's data rate. Thus, the second system does not experience any moments where data is not available for processing.
Many disadvantages, however, exist when the entire data packet is stored. For example, storing the entire packet can take a large amount of time, especially when large packets of data are being transferred. Also, with networks transferring large packets of data, not only is the time required to store the entire packet extensive, a large buffer is required at the first or second system. Additionally, with users requiring data transferred at faster speeds, any time required to store an entire data packet will be time lost in transferring data.